$(function () {
    //表格
    var classgrade_datagrid = $("#classgrade_datagrid");
    //弹窗
    var classgrade_dialog = $("#classgrade_dialog");
    //表单
    var classgrade_add_form = $("#classgrade_add_form");
    //班主任下拉
    var teacher_dialog = $("#teacher_dialog")
    classgrade_datagrid.datagrid({
        url: "/classgrade/list",
        columns: [[
            {field: 'id', title: '班级编号', width: 100},
            {field: 'name', title: '班级名称', width: 100},
            {field: 'stuNumber', title: '学生数量', width: 100},
            {field: 'college', title: '所在学院', width: 100,formatter:formatterCollege},
            {field: 'status', title: '班级状态', width: 100,formatter:formatterStatus},
            {field: 'classroom', title: '所在教室', width: 100,formatter:formatterClassroom},
            {field: 'employee', title: '班主任', width: 100,formatter:formatterEmployee}
        ]],
        fit: true,
        fitColumns: true,
        border: false,
        //rownumbers: true,
        singleSelect: true,
        pagination: true,
        toolbar: "#classgrade_datagrid_toolbar"
    });
    //把方法绑定到一个对象上
    var cmdObj = {
        //添加
        addClassgrade: function () {
            //清除表单
            classgrade_add_form.form("clear");
            classgrade_dialog.dialog("setTitle", "添加");
            classgrade_dialog.dialog("open");
        },
        //编辑
        editClassgrade: function () {
            //获取选中的行
            var selectedRow = classgrade_datagrid.datagrid("getSelected");
            if (!selectedRow) {
                $.messager.alert("温馨提示", "你好,请选择一个班级!", "error");
            }
            //清空表单数据
            classgrade_add_form.form("clear");
            //学院回显
            if (selectedRow.college) {
                selectedRow['college.id'] = selectedRow.college.id;
            }
            //教室回显
            if (selectedRow.classroom) {
                selectedRow['classroom.id'] = selectedRow.classroom.id;
            }
            //表单的回显
            classgrade_add_form.form("load", selectedRow);
            classgrade_dialog.dialog("setTitle", "编辑");
            classgrade_dialog.dialog("open");
        },
        //删除
        removeClassgrade: function () {
            //获取选中的行
            var selectedRow = classgrade_datagrid.datagrid("getSelected");
            if (!selectedRow) {
                $.messager.alert("温馨提示", "你好,请选择一个班级!", "error");
            }
            $.messager.confirm("温馨提示", "你确定要删除吗?", function (yes) {
                if (yes) {
                    $.post("/classgrade/delete", {id: selectedRow.id}, function (data) {
                        if (data.success) {
                            $.messager.alert("温馨提示", "操作成功", "info", function () {
                                cmdObj.reloadClassgrade();
                            });
                        } else {
                            $.messager.alert("温馨提示", data.msg, "error");
                        }
                    });
                }
            });
        },
        //确认
        save: function () {
            var url = "/classgrade/save";
            var id = $("#classgrade_id").val();
            if(id){
                url = "/classgrade/update";
            }
            classgrade_add_form.form("submit", {
                url: url,
                success: function (data) {
                    data = $.parseJSON(data);
                    if (data.success) {
                        $.messager.alert("温馨提示", "操作成功", "info", function () {
                            cmdObj.cancel();
                            cmdObj.reloadClassgrade();
                        });
                    } else {
                        $.messager.alert("温馨提示", data.msg, "error");
                    }
                }
            });
        },
        //刷新
        reloadClassgrade: function () {
            classgrade_datagrid.datagrid("reload");
        },
        //取消
        cancel: function () {
            classgrade_dialog.dialog("close");
        },
        //分配班主任
        selectClassgrade:function () {
            //获取选中的行
            var selectedRow = classgrade_datagrid.datagrid("getSelected");
            if (!selectedRow) {
                $.messager.alert("温馨提示", "你好,请选择一个班级!", "error");
                return;
            }
            classgrade_add_form.form("clear");
            console.log(selectedRow);
            if(selectedRow.status == 0){
                $.messager.alert("温馨提示","这个班级已经有班主任了,请重新选择!","error");
                return;
            }
            teacher_dialog.dialog("open");
        },
        //确定分配班主任
        confirm:function () {
            //获取选中的行
            var selectedRow = classgrade_datagrid.datagrid("getSelected");
            if (!selectedRow) {
                $.messager.alert("温馨提示", "你好,请选择一个班级!", "error");
            }
            $.messager.confirm("温馨提示", "你确定要为"+selectedRow.name+"分配班主任吗?", function (yes) {
                if (yes) {
                    $.post("/classgrade/updateTeacher", {id: selectedRow.id}, function (data) {
                        if (data.success) {
                            $.messager.alert("温馨提示", "班主任分配成功", "info", function () {
                                teacher_dialog.dialog("close");
                                cmdObj.reloadClassgrade();
                            });
                        } else {
                            $.messager.alert("温馨提示", data.msg, "error");
                        }
                    });
                }
            });
        }
    }
    //弹窗事件
    classgrade_dialog.dialog({
        buttons: "#classgrade_dialog_buttons",
        closed: true
    });
    //初始化分配班主任的dialog
    teacher_dialog.dialog({
        width: 240,
        height: 150,
        buttons: "#teacher_btns",
        closed: true,
        title: "请选择要分配的班主任"
    });
    //2.按钮的点击事件通过js来绑定
    $("a[data-cmd]").click(function () {
        var cmd = $(this).data("cmd");
        //cmd = "addEmp";
        //cmdObj[cmd]  :根据cmd的值,找到 cmdObj 对应的方法
        //cmdObj[cmd]() : () ,触发方法的执行
        //console.log("..cmd:" + cmd);
        cmdObj[cmd]();
    });
});
//格式化学院
function formatterCollege(value,row,index) {
    return value ? value.name : "";
}
//格式化状态
function formatterStatus(value,row,index) {
    if(value == 0){
        return "<font color='green'>已开班</font>";
    }
    if(value == 1){
        return "<font color='red'>未开班</font>";
    }
}
//格式化教室
function formatterClassroom(value,row,index) {
    return value ? value.name : "";
}
//格式化班主任
function formatterEmployee(value,row,index) {
    return value ? value.realName : "<font color='red'>尚未分配班主任</font>";
}
